import { http } from "@/utils/http";

// 设备维修记录信息接口类型
export interface RepairRecord {
  id?: number;
  tenantId?: number; // 租户ID
  equipmentId?: number; // 设备ID
  repairOrderNumber?: number; // 维修单号
  repairCount?: number; // 维修次数
  repairProject?: string; // 维修项目
  repairer?: string; // 维修人
  repairTime?: string; // 维修时间
  repairHours?: number; // 维修工时
  repairCost?: number; // 维修费用
  faultDetails?: string; // 故障详情
  processingStatus?: string; // 处理情况
  isDeleted?: number; // 是否删除
  createTime?: string; // 创建时间
  updateTime?: string; // 更新时间
}

// 设备维修记录VO接口类型
export interface RepairRecordVo {
  id?: number;
  deviceName?: string; // 设备名称
  deviceCode?: string; // 设备编码
  repairProject?: string; // 维修项目
  repairer?: string; // 维修人
  repairTime?: string; // 维修时间
  repairHours?: number; // 维修工时
  repairCost?: number; // 维修费用
  faultDetails?: string; // 故障详情
  processingStatus?: string; // 处理情况
}

// 设备维修记录查询参数接口
export interface RepairRecordQuery {
  page?: number;
  limit?: number;
  keyword?: string; // 设备名称/编码搜索
  [key: string]: any;
}

// 设备维修记录添加参数接口
export interface RepairRecordAdd {
  equipmentId: number; // 设备ID
  repairProject: string; // 维修项目
  repairer: string; // 维修人
  repairTime: string; // 维修时间
  repairHours: number; // 维修工时
  repairCost: number; // 维修费用
  faultDetails: string; // 故障详情
  processingStatus: string; // 处理情况
}

// 设备维修记录更新参数接口
export interface RepairRecordUpdate {
  id: number; // 维修记录ID
  equipmentId: number; // 设备ID
  repairProject: string; // 维修项目
  repairer: string; // 维修人
  repairTime: string; // 维修时间
  repairHours: number; // 维修工时
  repairCost: number; // 维修费用
  faultDetails: string; // 故障详情
  processingStatus: string; // 处理情况
}

// 分页响应接口
interface PageResponse<T> {
  total: number;
  list: T[];
}

// 设备维修记录列表响应
export interface RepairRecordListResponse {
  code: number;
  data: PageResponse<RepairRecordVo>;
  message: string;
}

// 设备维修记录详情响应
export interface RepairRecordDetailResponse {
  code: number;
  data: RepairRecord;
  message: string;
}

// 通用响应接口
export interface ApiResponse<T = any> {
  code: number;
  data?: T;
  message: string;
}

// 获取设备维修记录列表
export const getRepairRecordList = (params?: RepairRecordQuery) => {
  return http.post<RepairRecordListResponse, RepairRecordQuery>(
    "/repairRecord/list",
    {
      data: params
    }
  );
};

// 获取设备维修记录详情
export const getRepairRecordDetail = (id: number) => {
  return http.get<RepairRecordDetailResponse, { id: number }>(
    "/repairRecord/info",
    {
      params: { id }
    }
  );
};

// 添加设备维修记录
export const addRepairRecord = (data: RepairRecordAdd) => {
  return http.post<ApiResponse, RepairRecordAdd>("/repairRecord/add", {
    data
  });
};

// 更新设备维修记录
export const updateRepairRecord = (data: RepairRecordUpdate) => {
  return http.request<ApiResponse>("put", "/repairRecord/update", {
    data
  });
};

// 删除设备维修记录
export const deleteRepairRecord = (id: number) => {
  return http.request<ApiResponse>("delete", "/repairRecord/delete", {
    params: { id }
  });
};

// 批量删除设备维修记录
export const batchDeleteRepairRecord = (ids: number[]) => {
  return http.request<ApiResponse>("delete", "/repairRecord/deleteByBatch", {
    data: { ids }
  });
};
